﻿Option Strict On
Option Explicit On

Imports System.Globalization


Public Class BusquedaAvanzada
    Private baseDeDatos As BBDD
    Private texto As String
    Private numero As Integer
    Private numeroSql As Integer
    Private fechaSql As Date

    Private Sub BusquedaAvanzada_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        dibujarDatagrid()
        baseDeDatos = New BBDD
    End Sub

    Private Sub dibujarDatagrid()
        dgResultadoBusquedaAvanzada.Columns.Add(CStr(0), "Tipo")
        dgResultadoBusquedaAvanzada.Columns.Add(CStr(0), "Resultado")
        dgResultadoBusquedaAvanzada.Columns.Add(CStr(0), "")
        dgResultadoBusquedaAvanzada.Columns.Add(CStr(0), "")
        dgResultadoBusquedaAvanzada.Columns.Add(CStr(0), "")
        dgResultadoBusquedaAvanzada.Columns.Add(CStr(0), "")
        dgResultadoBusquedaAvanzada.Columns.Add(CStr(0), "")
        dgResultadoBusquedaAvanzada.Columns.Add(CStr(0), "")
        dgResultadoBusquedaAvanzada.Columns.Add(CStr(0), "")
    End Sub

    Private Sub btBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        dgResultadoBusquedaAvanzada.Rows.Clear()
        If ModuloBuscarAvanzada.Numerico(tbTexto.Text) Then
            numeroSql = CInt(tbTexto.Text)
        Else
            numeroSql = -1
        End If
        If ModuloBuscarAvanzada.Fecha(tbTexto.Text) Then
            fechaSql = CDate(tbTexto.Text)
        Else
            fechaSql = CDate("01/01/1900")
        End If
        If cbCliente.Checked = True Then
            buscarCliente("select * from Clientes where idCliente = " & numeroSql & " or nombre like '%" & tbTexto.Text & "%' or primerApellido like '%" & tbTexto.Text & "%' or segundoApellido like '%" & tbTexto.Text & "%' or telefono = '" & tbTexto.Text & "' or codPostal = '" & tbTexto.Text & "' or fechaNacimiento = cDate('" & fechaSql & "') or email like '%" & tbTexto.Text & "%'; ")
        End If
        If cbCita.Checked = True Then
            buscarCita("select * from citas where idCita = " & numeroSql & " or idCliente = " & numeroSql & " or horaEntrada = cDate('" & fechaSql & "') or fecha = cDate('" & fechaSql & "') or idEmpleado = " & numeroSql & " or idTratamiento = " & numeroSql & ";")
        End If
        If cbEmpleado.Checked = True Then
            buscarEmpleado("select * from empleados where idEmpleado = " & numeroSql & " or dniEmpleado like '%" & tbTexto.Text & "%' or nombreEmpleado like '%" & tbTexto.Text & "%' or primerApellidoEmpleado like '%" & tbTexto.Text & "%' or segundoApellidoEmpleado like '%" & tbTexto.Text & "%' or telefono like '%" & numeroSql & "%' ;")
        End If
        If cbTratamiento.Checked = True Then
            buscarTratamiento("select * from tratamientos where idTratamiento = " & numeroSql & " or nombre like '%" & tbTexto.Text & "%' or descripcion like '%" & tbTexto.Text & "%' or tiempoEstimado = " & numeroSql & " or precio = " & numeroSql & ";")
        End If

        If cbCita.Checked = False And cbCliente.Checked = False And cbEmpleado.Checked = False And cbTratamiento.Checked = False Then
            MessageBox.Show("No ha seleccionado ningun tipo")
        End If

    End Sub

    Private Sub buscarCita(ByVal sql As String)
        baseDeDatos.EjecutarComandoSelect(sql)
        If baseDeDatos.lector.HasRows Then
            While baseDeDatos.lector.Read()
                dgResultadoBusquedaAvanzada.Rows().Add("Cita", baseDeDatos.lector(0), baseDeDatos.lector(1), baseDeDatos.lector(2), baseDeDatos.lector(3), baseDeDatos.lector(4), baseDeDatos.lector(5))
            End While
        Else
            dgResultadoBusquedaAvanzada.Rows().Add("Cita", "Resultado 0")
        End If
        baseDeDatos.lector.Close()
        baseDeDatos.Desconectar()
    End Sub

    Private Sub buscarCliente(ByVal sql As String)
        baseDeDatos.EjecutarComandoSelect(sql)
        If baseDeDatos.lector.HasRows Then
            While baseDeDatos.lector.Read()
                dgResultadoBusquedaAvanzada.Rows().Add("Cliente", baseDeDatos.lector(0), baseDeDatos.lector(1), baseDeDatos.lector(2), baseDeDatos.lector(3), baseDeDatos.lector(4), baseDeDatos.lector(5), baseDeDatos.lector(6), baseDeDatos.lector(7))
            End While
        Else
            dgResultadoBusquedaAvanzada.Rows().Add("Cliente", "Resultado 0")
        End If
        baseDeDatos.lector.Close()
        baseDeDatos.Desconectar()
    End Sub

    Private Sub buscarEmpleado(ByVal sql As String)
        baseDeDatos.EjecutarComandoSelect(sql)
        If baseDeDatos.lector.HasRows Then
            While baseDeDatos.lector.Read()
                dgResultadoBusquedaAvanzada.Rows().Add("Empleado", baseDeDatos.lector(0), baseDeDatos.lector(1), baseDeDatos.lector(2), baseDeDatos.lector(3), baseDeDatos.lector(4), baseDeDatos.lector(5))
            End While
        Else
            dgResultadoBusquedaAvanzada.Rows().Add("Empleado", "Resultado 0")
        End If
        baseDeDatos.lector.Close()
        baseDeDatos.Desconectar()
    End Sub

    Private Sub buscarTratamiento(ByVal sql As String)
        baseDeDatos.EjecutarComandoSelect(sql)
        If baseDeDatos.lector.HasRows Then
            While baseDeDatos.lector.Read()
                dgResultadoBusquedaAvanzada.Rows().Add("Tratamiento", baseDeDatos.lector(0), baseDeDatos.lector(1), baseDeDatos.lector(2), baseDeDatos.lector(3), baseDeDatos.lector(4))
            End While
        Else
            dgResultadoBusquedaAvanzada.Rows().Add("Tratamiento", "Resultado 0")
        End If
        baseDeDatos.lector.Close()
        baseDeDatos.Desconectar()
    End Sub


#Region "eventos picture"
#Region "eventos picture"

    Private Sub Picture_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBoxCancelar.Click, PictureBoxBorrar.Click, PictureBoxBuscar.Click

        Dim auxPicture As PictureBox = CType(sender, PictureBox)

        Select Case auxPicture.Name
            Case PictureBoxBuscar.Name
                btBuscar_Click(sender, e)
            Case PictureBoxCancelar.Name
                Me.Close()
            Case PictureBoxBorrar.Name
                dgResultadoBusquedaAvanzada.Rows.Clear()
        End Select

    End Sub

    Private Sub Picture_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBoxCancelar.MouseHover, PictureBoxBorrar.MouseHover, PictureBoxBuscar.MouseHover

        Dim auxPicture As PictureBox = CType(sender, PictureBox)

        Select Case auxPicture.Name
            Case PictureBoxBuscar.Name
                PictureBoxBuscar.BackgroundImage = Image.FromFile("Img/Botones/BBuscarCon.png")
            Case PictureBoxBorrar.Name
                PictureBoxBorrar.BackgroundImage = Image.FromFile("Img/Botones/BBorrarCon.png")
            Case PictureBoxCancelar.Name
                PictureBoxCancelar.BackgroundImage = Image.FromFile("Img/Botones/BCancelarCon.png")

        End Select

    End Sub

    Private Sub Picture_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBoxCancelar.MouseLeave, PictureBoxBorrar.MouseLeave, PictureBoxBuscar.MouseLeave

        Dim auxPicture As PictureBox = CType(sender, PictureBox)

        Select Case auxPicture.Name
            Case PictureBoxBuscar.Name
                PictureBoxBuscar.BackgroundImage = Image.FromFile("Img/Botones/BBuscarSin.png")
            Case PictureBoxBorrar.Name
                PictureBoxBorrar.BackgroundImage = Image.FromFile("Img/Botones/BBorrarSin.png")

            Case PictureBoxCancelar.Name
                PictureBoxCancelar.BackgroundImage = Image.FromFile("Img/Botones/BCancelarSin.png")

        End Select

    End Sub

#End Region
#End Region

End Class